pyzbar

Brightcells 5 years ago
parent
commit
290ff6960f

+ 3 - 2
api/admin_views.py

@@ -8,8 +8,9 @@ from django_logit import logit
8 8
 from django_response import response
9 9
 from TimeConvert import TimeConvert as tc
10 10
 
11
-from mch.models import ConsumeInfoSubmitLogInfo, AdministratorInfo
12
-from utils.error.errno_utils import AdministratorStatusCode, ProductBrandStatusCode, ProductCouponStatusCode, ProductMachineStatusCode
11
+from mch.models import AdministratorInfo, ConsumeInfoSubmitLogInfo
12
+from utils.error.errno_utils import (AdministratorStatusCode, ProductBrandStatusCode, ProductCouponStatusCode,
13
+                                     ProductMachineStatusCode)
13 14
 
14 15
 
15 16
 WECHAT = settings.WECHAT

+ 2 - 1
api/urls.py

@@ -5,7 +5,8 @@ from django_file_upload import views as file_views
5 5
 
6 6
 from account import tourguide_views
7 7
 from account import views as account_views
8
-from api import admin_views, clerk_views, distributor_views, encrypt_views, mch_views, model_views, operator_views, sr_views
8
+from api import (admin_views, clerk_views, distributor_views, encrypt_views, mch_views, model_views, operator_views,
9
+                 sr_views)
9 10
 from box import views as box_views
10 11
 from geo import views as geo_views
11 12
 from group import (groupuser_views, lensman_views, tourguidegroup_views, tourguidegroupadmin_views,

+ 2 - 1
commands/management/commands/sale.py

@@ -8,7 +8,8 @@ from TimeConvert import TimeConvert as tc
8 8
 
9 9
 from integral.models import SaleclerkSubmitLogInfo
10 10
 from mch.models import BrandInfo, DistributorInfo, ModelInfo, SaleclerkInfo
11
-from sales.models import SalesResponsibilityInfo, SalesResponsibilityInfoModelsSaleStatisticInfo, SuperSalesResponsibilityInfoModelsSaleStatisticInfo
11
+from sales.models import (SalesResponsibilityInfo, SalesResponsibilityInfoModelsSaleStatisticInfo,
12
+                          SuperSalesResponsibilityInfoModelsSaleStatisticInfo)
12 13
 
13 14
 
14 15
 logger = logging.getLogger('console')

+ 1 - 1
integral/admin.py

@@ -1,7 +1,7 @@
1 1
 # -*- coding: utf-8 -*-
2 2
 
3 3
 from django.contrib import admin
4
-from django_admin import ReadOnlyModelAdmin, AdvancedExportExcelModelAdmin
4
+from django_admin import AdvancedExportExcelModelAdmin, ReadOnlyModelAdmin
5 5
 
6 6
 from integral.models import SaleclerkIntegralIncomeExpensesInfo, SaleclerkSubmitLogInfo
7 7
 

+ 12 - 0
kodo/oauth_settings.py

@@ -112,3 +112,15 @@ def DJANGO_FILE_UPLOAD_CALLBACK_FUNC(request, file_path=None, file_url=None):
112 112
             operator_id=optor_id,
113 113
             app_version=version,
114 114
         )
115
+
116
+    zbar = int(request.POST.get('zbar', 0))
117
+    if zbar:
118
+        import os
119
+        from utils.zbar.zbar import zbar
120
+
121
+        file_path = os.path.join(settings.MEDIA_ROOT, file_path)
122
+        zbars = zbar(file_path)
123
+
124
+        return {
125
+            'zbars': zbars,
126
+        }

+ 1 - 0
page/sale_views.py

@@ -356,6 +356,7 @@ def clerk_integral_list_api(request):
356 356
         'left_integral': clerk.integral,
357 357
     })
358 358
 
359
+
359 360
 @logit
360 361
 def clerk_model_list_api(request):
361 362
     brandID = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_PK)

+ 1 - 1
pre/views.py

@@ -2,11 +2,11 @@
2 2
 
3 3
 from __future__ import division
4 4
 
5
-import xlrd
6 5
 from django.conf import settings
7 6
 from pysnippets.strsnippets import strip
8 7
 from TimeConvert import TimeConvert as tc
9 8
 
9
+import xlrd
10 10
 from mch.models import BrandInfo, ConsumeInfoSubmitLogInfo, DistributorInfo, ModelInfo
11 11
 from statistic.models import (ConsumeDistributorSaleStatisticInfo, ConsumeModelSaleStatisticInfo,
12 12
                               ConsumeProvinceSaleStatisticInfo, ConsumeSaleStatisticInfo, ConsumeUserStatisticInfo,

+ 6 - 7
requirements_dj.txt

@@ -1,10 +1,10 @@
1 1
 Django==1.11.20
2
-django-admin==1.3.2
2
+django-admin==2.0.0
3 3
 django-cors-headers==2.4.0
4 4
 django-curtail-uuid==1.0.4
5 5
 django-detect==1.0.8
6
-django-file-md5==1.0.2
7
-django-file-upload==1.1.0
6
+django-file-md5==1.0.3
7
+django-file-upload==1.1.1
8 8
 django-ip==1.0.2
9 9
 django-json-render==1.0.2
10 10
 django-json-response==1.1.5
@@ -12,13 +12,12 @@ django-logit==1.1.3
12 12
 django-mobi==0.1.7
13 13
 django-models-ext==1.1.8
14 14
 django-multidomain==1.1.4
15
-django-paginator2==1.0.4
15
+django-paginator2==1.1.3
16 16
 django-query==1.0.3
17 17
 django-redis-connector==1.0.1
18 18
 django-response==1.1.1
19 19
 django-rlog==1.0.7
20 20
 django-shortuuidfield==0.1.3
21 21
 django-six==1.0.4
22
-django-uniapi==1.0.5
23
-django-we==1.4.2
24
-djangorestframework==3.7.7
22
+django-uniapi==1.0.7
23
+django-we==1.5.3rk==3.7.7

+ 2 - 1
sales/admin.py

@@ -2,7 +2,8 @@
2 2
 
3 3
 from django.contrib import admin
4 4
 
5
-from sales.models import SalesResponsibilityInfo, SalesResponsibilityInfoModelsSaleStatisticInfo, SuperSalesResponsibilityInfoModelsSaleStatisticInfo
5
+from sales.models import (SalesResponsibilityInfo, SalesResponsibilityInfoModelsSaleStatisticInfo,
6
+                          SuperSalesResponsibilityInfoModelsSaleStatisticInfo)
6 7
 
7 8
 
8 9
 class SalesResponsibilityInfoAdmin(admin.ModelAdmin):

+ 1 - 0
sales/tests.py

@@ -3,4 +3,5 @@ from __future__ import unicode_literals
3 3
 
4 4
 from django.test import TestCase
5 5
 
6
+
6 7
 # Create your tests here.

+ 3 - 2
sales/views.py

@@ -9,8 +9,9 @@ from TimeConvert import TimeConvert as tc
9 9
 
10 10
 from account.models import UserInfo
11 11
 from mch.models import DistributorInfo
12
-from sales.models import SalesResponsibilityInfo, SalesResponsibilityInfoModelsSaleStatisticInfo, SuperSalesResponsibilityInfoModelsSaleStatisticInfo
13
-from utils.error.errno_utils import UserStatusCode, SalesResponsibilityStatusCode
12
+from sales.models import (SalesResponsibilityInfo, SalesResponsibilityInfoModelsSaleStatisticInfo,
13
+                          SuperSalesResponsibilityInfoModelsSaleStatisticInfo)
14
+from utils.error.errno_utils import SalesResponsibilityStatusCode, UserStatusCode
14 15
 
15 16
 
16 17
 @logit

utils/original_CGzC_10a50000c8811190副本.jpg → utils/original_CGzC_10a50000c8811190.bak.jpg


+ 0 - 0
utils/zbar/__init__.py


BIN
utils/zbar/zbar.jpg


+ 40 - 0
utils/zbar/zbar.py

@@ -0,0 +1,40 @@
1
+# -*- coding: utf-8 -*-
2
+
3
+from PIL import Image, ImageEnhance
4
+from pyzbar import pyzbar
5
+
6
+
7
+# The zbar DLLs are included with the Windows Python wheels.
8
+# On other operating systems, you will need to install the zbar shared library.
9
+#
10
+# Mac OS X:
11
+# brew install zbar
12
+#
13
+# Linux:
14
+# sudo apt-get install libzbar0
15
+#
16
+# Install this Python wrapper; use the second form to install dependencies of the command-line scripts:
17
+# pip install pyzbar
18
+
19
+
20
+def zbar(path):
21
+    img = Image.open(path)
22
+
23
+    # img = ImageEnhance.Brightness(img).enhance(2.0)  # 增加亮度
24
+    # img = ImageEnhance.Sharpness(img).enhance(17.0)  # 锐利化
25
+    # img = ImageEnhance.Contrast(img).enhance(4.0)  # 增加对比度
26
+    # img = img.convert('L')  # 灰度化
27
+
28
+    # img.show()
29
+
30
+    barcodes = pyzbar.decode(img)
31
+
32
+    # for barcode in barcodes:
33
+    #     barcodeData = barcode.data.decode("utf-8")
34
+    #     print(barcodeData)
35
+
36
+    return [bar.data.decode('utf-8') for bar in barcodes]
37
+
38
+
39
+if __name__ == '__main__':
40
+    print zbar('zbar.jpg')